From 9a79db506e39c02daa81629f0b224a86fad2b3c6 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Mon, 15 Apr 2024 11:17:51 +0200 Subject: [PATCH] Make 'buffer-last-name' work better after 'find-alternate-file' (Bug#68235) * lisp/files.el (find-alternate-file): Before killing the previous buffer, try to restore its name and filenames (Bug#68235). --- lisp/files.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lisp/files.el b/lisp/files.el index 20d63d33fef..1e11dd44bad 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2113,6 +2113,15 @@ killed." (rename-buffer oname))) (unless (eq (current-buffer) obuf) (with-current-buffer obuf + (unless (get-buffer oname) + ;; Restore original's buffer name so 'kill-buffer' can use it + ;; to assign its last name (Bug#68235). + (rename-buffer oname)) + ;; Restore original buffer's file names so they can be still + ;; used when referencing the now defunct buffer (Bug#68235). + (setq buffer-file-name ofile) + (setq buffer-file-number onum) + (setq buffer-file-truename otrue) ;; We already ran these; don't run them again. (let (kill-buffer-query-functions kill-buffer-hook) (kill-buffer obuf)))))) -- 2.30.2